//
//  MPNetworkConfig.h
//  MPHttpRequest
//
//  Created by yafei liu on 2021/4/20.
//

#import <Foundation/Foundation.h>

NS_ASSUME_NONNULL_BEGIN
/*!
@class
@abstract 网络请求配置类*
 可配置1.响应成功的code；2.响应错误的默认处理block；3.计算请求头的默认block
*/
@interface MPNetworkConfig : NSObject

/*!
 @property
 @abstract 请求响应成功的code，不等于successCode的业务响应code会进入defaultErrorCodeBlock和failure流程。
 */
@property (nonatomic, assign) NSInteger successCode;

/*!
 @property
 @abstract 登录后应获取access_token，并配置到MPNetworkConfig单例对象，后续接口需要使用access_token计算校验签名。
 */
@property (nonatomic, copy) NSString *access_token;

/*!
 @property
 @abstract 响应错误的默认处理block
 @param error error对象
 */
@property (nonatomic, copy, nullable) void(^defaultErrorCodeBlock)(NSError *error);

/*!
 @property
 @abstract 计算请求头的默认block
 @param urlPath 用于计算校验码的请求路径，不带域名。
 @param parameters 用于计算校验码的请求参数
 */
@property (nonatomic, copy, nullable) NSDictionary *(^defaultRequestHeadersBlock)(NSString *urlPath,id parameters);

/*!
@method
@abstract 获取单例对象
*/
+ (instancetype)sharedManager;

/*!
@method
@abstract OC对象转json字符串
@param data OC对象
@result json字符串，可为nil
*/
+ (NSString *)jsonStringWithObject:(id)data;

/*!
@method
@abstract 获取字符串的MD5值
@param str 字符串
@result MD5值
*/
+ (NSString *)md5StringWithStr:(NSString *)str;

/*!
@method
@abstract 获取NSData对象的MD5值
@param data NSData对象
@result MD5值
*/
+ (NSString *)md5StringWithData:(NSData *)data;

@end

NS_ASSUME_NONNULL_END
